package mains.entrega4;

import persi.casosDeUso.CasoDeUso;
import persi.futbol.Equipo;
import persi.futbol.formacion.Formacion;
import persi.futbol.partidos.Partido;
import persi.futbol.partidos.PartidoCopa;
import persi.futbol.partidos.PartidoSimple;
import persi.hibernate.Home;

/**Crea un partido de copa a partir de dos simples y lo persiste */
public class EjemploPartidoDeCopa {
	protected Equipo equipo1;

	public static void main(String[] args) {
		new CasoDeUso() {

			@Override
			public void casoDeUso() {
				EjemploPartidoDeCopa ejemplo = new EjemploPartidoDeCopa();
				ejemplo.crearFormaciones();
				PartidoSimple partidoSimple = new PartidoSimple();
				partidoSimple.setNombreDelPartido("partido de ida");
				partidoSimple.setEquipo1(ejemplo.equipo1);
				partidoSimple.setEquipo2(ejemplo.equipo2);
				partidoSimple.setFormacion1(ejemplo.formacion1);
				partidoSimple.setFormacion2(ejemplo.formacion2);
				partidoSimple.setGolesEquipo1(0);
				partidoSimple.setGolesEquipo2(5);
				Home<Partido> home = new Home<Partido>(Partido.class);
//				home.insertar(partidoSimple);

				PartidoSimple partidoSimple2 = new PartidoSimple();
				partidoSimple2.setNombreDelPartido("partido de vuelta");
				partidoSimple2.setEquipo1(ejemplo.equipo1);
				partidoSimple2.setEquipo2(ejemplo.equipo2);
				partidoSimple2.setFormacion1(ejemplo.formacion1);
				partidoSimple2.setFormacion2(ejemplo.formacion2);
				partidoSimple2.setGolesEquipo1(5);
				partidoSimple2.setGolesEquipo2(0);
//				home.insertar(partidoSimple2);

				PartidoCopa partidoCopa1 = new PartidoCopa();
				partidoCopa1.setNombreDelPartido("el gran partido");
				partidoCopa1.setEquipo1(ejemplo.equipo1);
				partidoCopa1.setEquipo2(ejemplo.equipo2);
				partidoCopa1.setPartido1(partidoSimple);
				partidoCopa1.setPartido2(partidoSimple2);
				partidoCopa1.setGolesPenalEquipo1(5);
				partidoCopa1.setGolesPenalEquipo2(2);
				home.insertar(partidoCopa1);

			}
		}.ejecutar();
	}

	private Formacion formacion1;
	private Formacion formacion2;
	private Equipo equipo2;

	private void crearFormaciones() {
		final Home<Equipo> home = new Home<Equipo>(Equipo.class);
		Equipo example = new Equipo();
		example.setNombre("funcionales");
		this.equipo1 = home.buscar(example, Equipo.NOMBRE);
		this.formacion1 = equipo1.armarFormacion();
		Home<Formacion> homeFormacion = new Home<Formacion>(Formacion.class);
		homeFormacion.insertar(formacion1);

		example = new Equipo();
		example.setNombre("objetos");
		this.equipo2 = home.buscar(example, Equipo.NOMBRE);
		this.formacion2 = equipo2.armarFormacion();
		homeFormacion.insertar(formacion2);
	}
}
